home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / README.TXT < prev    next >
Encoding:
Text File  |  1997-06-22  |  44.4 KB  |  1,032 lines

  1. README for Symantec Visual Cafe PRO Version 1.0e        06/20/97
  2. ================================================================
  3. Copyright (c) 1997 by Symantec Corporation. All Rights Reserved.
  4.  
  5. NOTE:  
  6. The Visual Cafe PRO consists of two products: the Visual 
  7. Integrated Development Environment (e.g. Visual Cafe) with 
  8. database aware functionality (components, wizards, interactions), 
  9. and the dbANYWHERE Workgroup Server.  This README file is 
  10. explicitly for Visual Cafe PRO, and the file for dbANYWHERE is 
  11. available upon installation of the dbANYWHERE Workgroup Server.
  12. It is highly recommended that you review this file, since it 
  13. contains useful information which pertains to using Visual Cafe Pro.
  14.  
  15.  
  16. Table of Contents:
  17. I.    Welcome
  18. II.   Installation Notes
  19. III.  User Tips
  20. IV.   Known Problems-PRO Specific and Vendor Specific
  21. V.    Revision History
  22. VI.   Additional Information
  23. VII.  Contacting Symantec for Technical Support
  24.  
  25. I.  Welcome!
  26. ================================================================
  27. Welcome to Symantec Visual Cafe PRO Version 1.0 for Windows 95
  28. and Windows NT.  Please take a few minutes to read this file.
  29.  
  30.  
  31. II.  Installation Notes
  32. ================================================================
  33. If you have previously downloaded the Preview Releases of Visual 
  34. Cafe, you must remove them before installing Visual Cafe PRO 1.0.
  35.  
  36. Run setup.exe.  The installation should proceed smoothly.  As with
  37. any new software, please install Visual Cafe PRO in a clean directory.   
  38.  
  39. If you are using Microsoft's NTFS do not install into a directory
  40. that has a name containing spaces.
  41.  
  42. You will need to use a Web browser to read the Database 
  43. Reference and API document, DatabaseReference.HTML.
  44.  
  45.  
  46. Installing and Running the Tutorial
  47. ---------------------------------------------------------------
  48. If you are new to Java development, please take the time to work
  49. through the exciting and informative tutorial that is part of 
  50. Visual Cafe PRO.  This tutorial will provide you with an overview 
  51. of Visual Cafe PRO's most powerful features. 
  52.  
  53. What's in the Tutorial?
  54. ---------------------------------------------------------------
  55. In the Tutorial you will learn how to:
  56.  
  57. * Design an applet, then build and install it in a Web page.
  58. * Run the applet in a Web browser.
  59. * Design an application, then build, test, debug, and run it.
  60. * Learn about Visual Cafe PRO's powerful database-aware features.
  61.  
  62.  
  63. III.  User Tips
  64. ================================================================
  65. 1.  How do I configure my Web browser to run an applet I created 
  66. using custom classes?
  67.  
  68. When you are ready to view your applet outside the Visual Cafe 
  69. PRO environment, you need to make sure that the AppletViewer or 
  70. your favorite Web browser can find the custom classes included 
  71. with Visual Cafe PRO 1.0e.  For local browsing, add an 
  72. environment variable to your autoexec.bat file, such as:
  73.  
  74.     SET CLASSPATH=C:\VisualCafePro\java\lib\vecclass.zip;
  75.  
  76. Whether you use a Browser that supports JDK 1.0.2 or 1.1, set the 
  77. classpath to the respective Visual Cafe class files.
  78.  
  79.             *
  80.  
  81. 2.  How do I add values for each column in a non-dbAware MultiList 
  82. component?
  83.  
  84. When using multiple columns in the MultiList component, you must
  85. separate the column values with a semicolon.  Each row is separated
  86. with a Ctrl + Enter.  Populating static values for a dbAware 
  87. MultiList component is the same.  For dynamic values, follow the 
  88. instructions outlined in the on-line help.
  89.  
  90.             *
  91.  
  92. 3.  How do I distribute my applet on a Web server?
  93.  
  94. When placing the applet on a Web server, contact your Webmaster 
  95. and verify that the Symantec classes are available.  If the 
  96. classes are not available on your server, the Webmaster will need 
  97. to add them or tell you how to add them.
  98.  
  99. A solution that works locally, or from a server, is to copy the 
  100. \VisualCafePro\Java\Lib\symantec directory and all of its contents 
  101. to the directory containing the applet. (The subdirectories of the
  102. "symantec" directory contain the Visual Cafe PRO Java runtime 
  103. classes.)  Make sure to keep the same upper and lower case letters 
  104. for the subdirectories and class files; Java is case-sensitive.
  105.  
  106. Some items to consider when deploying a dbAware applet:  1) Central 
  107. access to the database(s) along with user permissions, 2) Running 
  108. and maintaining dbANYWHERE on a server for use by the applet, and 
  109. 3) Number of expected simultaneous connections (you may need to get 
  110. the dbANYWHERE Server product for handling your user base).
  111.  
  112.             *
  113.  
  114. 4.  Is there a means of easily figuring out what classes are used
  115. by my applet, so that I can place them on the web server for 
  116. download when the applet is accessed?
  117.  
  118. With Visual Cafe PRO 1.0x, a utility called "Bundler" was included 
  119. that allowed you to easily figure out which classes were used by 
  120. your applet or application, and needed to be uploaded to your 
  121. Web server.  This functionality is now in our compiler, sj.exe.  
  122. Once your Java app is ready, execute the following command at
  123. the command prompt (make sure that \VisualCafePro\bin is in
  124. your path):
  125.  
  126.  sj.exe -depend listname.dep mainclass.java
  127.  
  128. mainclass is the name of the main class Java file or the project
  129. name.  In this example, listname.dep is the file where the list 
  130. of classes used by your app will be generated.  The file 
  131. listname.dep has to have a .dep extension. The name of the zip 
  132. file (if any) where the class file was found will be listed.  
  133. This helps you determine which class files you would need to 
  134. unzip from each class zip file used by your app.  Note that while  
  135. the java.* class files are logged in this file, you are not 
  136. actually required to copy those to your Web server, as they are 
  137. usually available with most Internet browsers.
  138.  
  139.                 *
  140.  
  141. 5.  What is the "Execute applet in default HTML viewer" option
  142. in the Project Options dialog?
  143.  
  144. The "Execute applet in default HTML viewer" option, located in
  145. the Project Options dialog box, allows you to view your applet
  146. in your favorite Web browser, instead of the AppletViewer, 
  147. when executing from the Visual Cafe PRO environment.
  148.  
  149.             *
  150.  
  151. 6.  Will Visual Cafe PRO recognize my own source code?
  152.  
  153. When adding controls directly within the source editor, it is 
  154. recommended that you adhere to the same coding style as generated
  155. by Visual Cafe PRO.  This will allow controls you add to be 
  156. displayed in the form editor.  Controls you add outside Visual 
  157. Cafe PRO's tags (which are comments that indicate where Visual 
  158. Cafe PRO generates Java code for the form editor) will not be 
  159. displayed in the form editor and will not be affected by 
  160. automatic code generation.
  161.  
  162. So to reiterate, if you are adding controls within Visual Cafe 
  163. PRO's tags in the source editor, adhere to Visual Cafe PRO's 
  164. default coding style.  Otherwise, you can add controls outside 
  165. of Visual Cafe PRO's tags using your own coding style.
  166.  
  167.             *
  168.  
  169. 7.  What do I need to do to enable Remote Debugging?
  170.  
  171. If you are using cafeRemote on a remote computer for remote debugging 
  172. you must modify the autoexec.bat file on that machine.  You must 
  173. also include VisualCafePro\java\bin your PATH, and create and set 
  174. a CLASSPATH system variable to include all necessary classes for 
  175. the Applet or Application you are debugging.  Here is an example:
  176.  
  177. set PATH=C:\VisualCafePro\Java\Bin;%PATH% 
  178. set CLASSPATH=C:\VisualCafePro\Java\Lib;
  179. C:\VisualCafePro\Java\Lib\SYMCLASS.ZIP;
  180. C:\VisualCafePro\Java\Lib\VECCLASS.ZIP;
  181. C:\VisualCafePro\Java\Lib\DBAW_AWT.ZIP;
  182. C:\VisualCafePro\Java\Lib\DBAW.ZIP;
  183. C:\VisualCafePro\Java\Lib\SQL.ZIP;C:\YOUR_CLASSES;
  184.  
  185. Note that a PATH or CLASSPATH statement in your system files 
  186. is one continuous line with no spaces or carriage returns.
  187.  
  188.             *
  189.  
  190. 8.  I'm charged for Web server space on a per megabyte basis.  
  191. Is there a more efficient way to deploy other than copying the 
  192. \symantec class subdirectory to each of my applet directories?
  193.  
  194. The use of a CODEBASE="URL of applet directory" attribute within
  195. the <APPLET></APPLET> tags can be used to specify the URL of the
  196. directory in which the applet resides.  That way your applets can
  197. access the Symantec classes no matter where they reside. 
  198.  
  199. If your server is UNIX, you can do a symbolic link from your 
  200. applet directory to the symantec class subdirectory on the 
  201. server.
  202.                         *
  203.  
  204. 9.  When I open a project in the Form Designer, the dialog for 
  205. Dial Up Networking appears.  If I log on, all is well.  If I 
  206. cancel, Visual Cafe PRO "hangs" for several minutes.
  207.  
  208. The use of relative URLs (for example, IMAGES/*.GIF) can cause 
  209. this behavior on some systems. To avoid it, use absolute URLs 
  210. (for example, C:\...\PROJECT\IMAGES\*.GIF) during design time 
  211. and then switch to relative URLs for deployment.
  212.  
  213.                         *
  214.  
  215. 10.  Each time I attempt to launch Visual Cafe Pro, I get this 
  216. message: An incorrect version of the AWT is found in the path 
  217. (check your system directory).  Visual Cafe Pro runs if I click 
  218. OK, but live controls are disabled.
  219.  
  220. It is not uncommon for files that Visual Cafe PRO relies upon to 
  221. be replaced by other vendors (Java development tools or other 
  222. software).  In most cases, the files can be one or more of the 
  223. following: JAVAI.DLL, AWT.DLL, MFC30.DLL, and/or MSVCRT20.DLL.  
  224. Copy these files from VisualCafePro\JAVA\BIN to 
  225. VisualCafePro\BIN. This will ensure that the correct files are 
  226. being loaded since the current working directory, VisualCafePro, 
  227. is searched first (allowing the use of live controls).  This 
  228. solution is also applicable if a runtime error is generated when 
  229. Visual Cafe Pro is launched.
  230.  
  231.                         *
  232.  
  233. 11.  How can I increase the size of a form within the Form 
  234. Designer larger than the resolution of my screen?
  235.  
  236. A form in the Form Designer is limited to the resolution of your
  237. display.  If your display system is capable, increase the its resolution
  238. to allow more information on the screen such as changing from 800x600
  239. to 1024x768.  If your display system supports the use of a "viewport"
  240. or "virtual desktop" where only a portion of the desktop is displayed
  241. on the monitor, the form size can be increased to the size of the desktop.
  242. Note that this has not been thoroughly tested with all display systems.
  243.  
  244.                         *
  245.  
  246. 12.  Can I integrate Netscape's IFC into the Visual Cafe Pro environment?
  247.  
  248. Symantec will provide Netscape IFC integration instructions for Visual
  249. Cafe Pro on our Web site at HTTP://CAFE.SYMANTEC.COM.
  250.  
  251.                         *
  252.  
  253. 13.  I would like to distribute my applications created with Visual Cafe 
  254. Pro along with the Symantec Virtual Machine.  Do I need to obtain a license? 
  255.  
  256. Yes. Please contact Symantec Developer Relations for additional
  257. information.  The .class files included with Visual Cafe are freely
  258. distributable.
  259.  
  260.                         *
  261.  
  262. 14.  I receive parsing errors when I attempt to define a custom color.
  263.  
  264. Custom colors must be defined in the INIT_CONTROLS to avoid
  265. parsing errors.
  266.  
  267.                         *
  268.  
  269. 15.  If I overlap components, why do they behave differently in Internet 
  270. Explorer and Netscape?
  271.  
  272. The Java z-order implementation within Internet Explorer for Windows is
  273. opposite to that of Netscape for Windows.  For example, take a look at the
  274. slide show in VISUALCAFEPRO\TUTORIAL\APPLET\SLIDESHOW.JAVA.  We've 
  275. placed one Next InvisibleButton in front of the CLICKER.GIF image and one 
  276. behind it so it will work for both browsers.  If only one Invisible Button 
  277. was used behind the CLICKER.GIF image in the SlideShow, the applet would 
  278. not function correctly in Internet Explorer.  To accommodate different 
  279. Java z-order implementations, it is necessary to place an InvisibleButton 
  280. in front of the component as well as behind it in order for events to be 
  281. generated.
  282.  
  283.  
  284. 16.  How do I add third party components to Visual Cafe PRO?
  285.  
  286. Refer to the Component Integration document at
  287. FTP://ITOOLS.SYMANTEC.COM/PUB/DEVREL/VISUALCAFE/PAPERS/
  288. for instructions.
  289.  
  290.                         *
  291.  
  292. 17.  To conserve resources, I'd like to disable live controls.  How do you 
  293. do this?
  294.  
  295. Rename the jblender.dll file to jblender.sav and restart Visual Cafe PRO.
  296.  
  297.             *
  298.  
  299. 18.  An Environment option called AWT_DBG_ASSERT may be set in the
  300. sc.ini file located in \VisualCafe\bin to turn on Assert messages 
  301. that development uses to debug VisualCafe.  Technical support may 
  302. ask you to set this when troubleshooting.  To turn it on set it to 
  303. TRUE.  Set it to FALSE for regular mode.  The default is FALSE.  
  304. For example, to turn Assert messages on:  AWT_DBG_ASSERT=TRUE
  305.  
  306.                         *
  307.  
  308. 19.  Where can I find additional learning materials for Visual Cafe PRO
  309. and java?
  310.  
  311. The following publishers have announced books for Visual Cafe/Pro:
  312.  
  313. Discovering Visual Cafe
  314. IDG Books
  315. Wall & Griffith
  316.  
  317. Visual Cafe Frontrunner
  318. Corolis
  319.  
  320. Symantec Visual Cafe Sourcebook
  321. John Wiley & Sons
  322. Cary Jardin
  323.  
  324. Visual Cafe Programming for Dummies
  325. IDG Books
  326. Tittel & Gaither
  327.  
  328. Visual Cafe
  329. Addison Wesley Germany
  330. Guido Krueger
  331.  
  332. Visual Cafe Pro
  333. WROX Press UK
  334. Roger Lee
  335.  
  336.  
  337. IV.  Known Problems-PRO Specific and Vendor Specific
  338. ================================================================
  339. This section lists information on known problems with Visual Cafe 
  340. PRO, and alternative actions that can be taken to avoid them.  It 
  341. is divided up by Visual Cafe and Visual Cafe Pro specific areas.
  342.  
  343. Visual Cafe Specific
  344. --------------------
  345. * If you encounter certain errors when starting Visual Cafe Pro or 
  346.   if your tool palette appears empty, delete the following files from 
  347.   \visualcafepro\bin:
  348.     *.rps
  349.     *.reg
  350.     *.vws
  351.  
  352.   Note: Some of the errors are:
  353.     "No starter templates could be found"
  354.     "Cannot open local repository"
  355.     "Cannot open registry"
  356.  
  357.   These files are platform-dependent and must be regenerated
  358.   when switching from one OS to another.  
  359.  
  360. * Due to architectural changes within Visual Cafe PRO projects, it is  
  361.   not compatible with Visual Cafe Preview 1 or 2 .VPJ files.  Also, it
  362.   is not suggested that you mix projects between Visual Cafe and Visual
  363.   Cafe PRO.
  364.  
  365. * When using the Parse All Imports option, we strongly recommend 
  366.   that you allow the parser to finish parsing before editing or 
  367.   changing a file.  To view the status of the parser, select 
  368.   Messages from the Visual Cafe PRO Window menu.
  369.  
  370. * The x and y dimension properties in the Property Inspector are 
  371.   not applicable for root level objects.  No effect is achieved 
  372.   if you change these settings.
  373.  
  374. * Visual Cafe Pro introspects class files when they are added to the 
  375.   Component Library, and allows the setting of basic properties 
  376.   in the property list if the class follows the Java Beans spec.  
  377.   Supported properties are: int, Boolean, String, String arrays, 
  378.   Color, Font, URL, and URL arrays.  Currently, the additional is/set 
  379.   design pattern for Boolean properties is not supported.
  380.  
  381. * The use of alignment tools within a borderPanel is not supported in 
  382.   this release.
  383.  
  384. * When using border panels with snap to grid turned on, panel contents 
  385.   can shift when the panel itself is moved on a form. To prevent this, 
  386.   turn snap to grid off.
  387.  
  388. * Status bar is cut off in AppletViewer when first displaying.
  389.   You may need to manually resize the window to see it. 
  390.  
  391. * Under the VM, the Checkbox fires two action events when clicked.
  392.  
  393. * Breakpoints in Debugging
  394.  
  395.   Setting breakpoints in local and anonymous classes will 
  396.   not be recognized by the debugger.  To step in a local class, 
  397.   set a breakpoint at the line that calls the method of the class.  
  398.   Then step into the method.
  399.  
  400.   In rare cases while stepping, the break line will not be 
  401.   able to step any further.  If this happens, delete or disable 
  402.   the breakpoint, and you will be able to continue stepping.
  403.  
  404.   While debugging, when multiple threads share the same breakpoint,
  405.   the VM may throw an IllegalAccessError exception.  This error
  406.   is due to a bug in the JDK.  Let's say you have a class that 
  407.   extends java.lang.Thread called Calculate.  If you start 5
  408.   Calculate threads and set a breakpoint in Calculate, while
  409.   debugging you may get the above exception. 
  410.  
  411.  
  412. Visual Cafe PRO Specific
  413. ------------------------
  414. * BACK PARSING
  415.   1. Visual Cafe PRO provides sophisticated editing abilities, where a 
  416.   change to an object in the Property List window will automatically 
  417.   generate the code change in the source, or an object added to the 
  418.   source will appear on the form and in the Project window.  However, 
  419.   there have been some problems noted with this facility, where 
  420.   extensive changes to object names in the source will occasionally 
  421.   cause invalid back parsing.  It is suggested that changes be made 
  422.   through the Property List window as often as possible.
  423.  
  424.   2. There are rare occasions when an object dropped onto the applet 
  425.   window does not size properly, or becomes "lost" from view.  The 
  426.   easiest way to recover from this is to locate the object in the 
  427.   project window.  Once selected, you can edit the X,Y,Width and 
  428.   Height parameters in the Property List to desirable values.
  429.  
  430. * LOGON FRAME PROBLEM
  431.   In this version of Visual Cafe Pro, there is a problem where launching 
  432.   a frame containing a RelationView causes a logon frame to appear, but 
  433.   it locks up.  Some solutions for this are listed below, for defining a 
  434.   class that launches frames.
  435.  
  436.   SIMPLE:
  437.   -------
  438.   class MyFrameClassLauncher extends Thread {
  439.      boolean show;
  440.      public MyFrameClassLauncher(boolean showTheFrame) {
  441.              show = showTheFrame;
  442.      }
  443.      public void run() {
  444.              MyFrameClass f = new MyFrameClass()
  445.              if (show) f.show();
  446.      }
  447.   }
  448.  
  449.   MORE COMPLEX, BUT MORE FLEXIBLE:
  450.   --------------------------------
  451.   //package symantec.itools.db.awt.util;
  452.  
  453.   public class FrameLauncher extends Thread { String className;
  454.      boolean show;
  455.      //private constructor to prevent external instantiation.
  456.      private FrameLauncher(String  theFrameClass, boolean showFrame) {
  457.         className=theFrameClass;
  458.      }
  459.  
  460.      public static void launch(String theClassName) { 
  461.         FrameLauncher f = new FrameLauncher(theClassName, true); 
  462.         f.start();
  463.      }
  464.  
  465.      public static void launch(String theClassName, boolean showFrame) { 
  466.         FrameLauncher f = new FrameLauncher(theClassName, showFrame); 
  467.         f.start();
  468.      }
  469.  
  470.      public void run() {
  471.         try {
  472.            java.awt.Frame f = (java.awt.Frame)
  473.            Class.forName(className).newInstance(); 
  474.            if (!show) f.show();
  475.         }  catch(Exception e) {}
  476.      }
  477.   }
  478.  
  479.   // launch the frame by calling the Launch method from an applet:
  480.   //
  481.   // FrameLauncher.launch("Frame1");
  482.  
  483.  
  484. * dbAWARE COMPONENTS
  485.   In general, dbAware components should only be used if they will be 
  486.   bound to a data projection.  Otherwise, you should use a non-data 
  487.   aware component instead.  Using a dbAware component without a data 
  488.   projection will result in a NullPointer exception at runtime.
  489.  
  490.   1. The Grid control has undergone some extensive changes.  However, 
  491.   there are still some outstanding problems you should be aware of:
  492.  
  493.     a.  When using a grid for a detail RelationView, marking the 
  494.     master RelationView for deletion (pressing "Delete" button) will 
  495.     cause the grid to clear.  This is normal behavior.  However, 
  496.     performing an "Undo" will not force the grid to re-display.  You 
  497.     must move the cursor to a different record and then move back, 
  498.     in order for the data to display in the grid.
  499.  
  500.     b.  Most refresh and painting problems with the grid have been 
  501.     corrected.  However, in some circumstances there are performance 
  502.     penalties.  This is noticeable when running an applet with more 
  503.     than two grids in commercial browsers, such as Netscape Navigator 
  504.     and Microsoft Internet Explorer.
  505.  
  506.     c.  There is a focus issue, when moving the cursor via tab or
  507.     arrow key to a different row in the grid.  If there is a second
  508.     grid present, focus will shift to the next grid, instead of the
  509.     next row.
  510.  
  511.     d.  When creating a Grid that will use a RelationView, make sure 
  512.     you specify the RelationView through the Property Inspector before
  513.     doing a Parse All.  Otherwise, code gen specific to data aware
  514.     usage will not be generated.
  515.  
  516.   2. KeyPressManagerPanel
  517.     a. The KeyPressManagerPanel is inserted into applets through the  
  518.     AddTable Wizard by default, because it is required for database 
  519.     transactions to be performed correctly.  It ensures that data 
  520.     change notification is processed for all dbAware controls that 
  521.     are bound to data sources.  It also facilitates tabbing between 
  522.     controls (something quite lacking from most Java applets today).  
  523.     Note that when dragging a table from the dbNavigator window 
  524.     instead of employing the Add Table Wizard, a KeyPressManagerPanel 
  525.     will not be instantiated.  You can manually add one from the Panel 
  526.     tool palette.  However, make sure that you always keep RelationView, 
  527.     Session, and ConnectionInfo objects listed before it.  Conversely, 
  528.     any data aware controls should always roll-up within this panel object.
  529.  
  530.     b.  KeyPressManagerPanel will resize properly when adding components
  531.     through the add table wizard only if it is highlighted when invoking
  532.     the add table wizard.  If the applet is highlighted instead, the 
  533.     components will fall outside the KeyPressManagerPanel, causing parsing
  534.     problems.  If this ever happens, make sure you move this object to be 
  535.     the last entry in the Project window.
  536.  
  537.   3. It is not possible to resize some of the dbAWARE objects, such as
  538.   the Session, ConnectionInfo, and RelationView.  Since these are not
  539.   visible at runtime, there is no need to alter their appearance.  It
  540.   is also recommended that you do not Cut and Paste these objects.
  541.  
  542.   4. The ImageViewer now has the capability of loading new images and 
  543.   saving them in your database.  Here's how it works:
  544.  
  545.      a. create an applet using a table with a blob datatype.
  546.      b. create a standard textfield control and button control.
  547.      c. create an association between the button and the ImageViewer,
  548.         specifying the click action to "fetch an image from...",
  549.         indicate the textfield control as the object to get the 
  550.         information from, and indicate to "get the contents of the 
  551.         TextField".
  552.  
  553.   The ImageViewer will accept JPEG and GIF format images.  You can 
  554.   specify them using an http or file URL, but the source is subject to 
  555.   the Java security model restrictions when running an applet (i.e. the 
  556.   image must come from the same server as the applet).  Using FTP is 
  557.   not possible at this time, but is being considered in a later version.
  558.   Refer to the on-line documentation for more details.
  559.  
  560.   5. A data-aware ComboxBox control is now available, which provides 
  561.   basic functionality similar to the Windows standard.  Please refer to 
  562.   the on-line help for further details on this control.
  563.  
  564.   6.  There is a new DateTime object included in Visual Cafe Pro.  
  565.   Please be sure to check out the documentation for it provided in 
  566.   the on-line help.  Although it is a powerful, flexible object, 
  567.   not all of the formatting strings are intuitive.  The documentation 
  568.   properly explains the usage.
  569.  
  570.   7. The FormattedTextField is a new control included in this release.
  571.   Essentially, it functions like a dbAware textfield, with the addition 
  572.   of having a freeform Mask property.
  573.   
  574.   The FormattedTextField uses a set of predefined characters that define 
  575.   the mask.  When defining a mask, be sure to preface any character that 
  576.   is to be a part of the mask with the Escape character ('/'), including 
  577.   spaces.  For instance, specify the mask for a long distance telephone 
  578.   number as: /(999/)/ 999/-9999.
  579.  
  580.   Here is a list of the key characters used to define a mask:
  581.  
  582.   Mask Type           Symbol  Restriction
  583.   ------------------- ------  ----------------------------------------
  584.   ESCAPE                '/'   Preface all mask characters with this
  585.   DIGIT                 '9'   numbers
  586.   SIGN                  '+'   sign character
  587.   DIGIT_OR_SIGN         '-'   sign character or a number
  588.   ALPHA_UPPER           'A'   UPPER CASE letters
  589.   ALPHA_LOWER           'a'   lower case letters
  590.   ALPHA_TO_UPPER        'U'   letters and converts to upper case
  591.   ALPHA_TO_LOWER        'L'   letters and converts to lower case
  592.   ALPHANUMERIC_UPPER    'X'   numbers and upper case letters
  593.   ALPHANUMERIC_LOWER    'x'   numbers and lower case letters
  594.   ALPHANUMERIC_TO_UPPER 'N'   numbers and letters, but converts
  595.                               all letters to upper case
  596.   ALPHANUMERIC_TO_LOWER 'n'   numbers and letters, but converts
  597.                               all letters to lower case
  598.   ANY                   '*'   Allows any character to be entered
  599.  
  600.  
  601.   Examples of Some Useful Masks
  602.   -----------------------------
  603.   Long Zip Code:  99999/-9999
  604.   Social Security Number:  999/-99/-9999 
  605.   PG&E Account Number:  AAA99/ 99999/-9
  606.   16 Digit Credit Card Number: 9999/ 9999/ 9999/ 9999 
  607.   MM/DD/YYYY Date Format:  99//99//9999
  608.  
  609.   You could even get clever and preface a name with: 
  610.   /M/r/,/ or /M/s/./ or /D/r/./ 
  611.  
  612.   Imagine the possibilities...
  613.  
  614.   8.  The TextField has a column property that is intended to allow 
  615.   you to specify the initial width of the text area based on the size 
  616.   of the text field's font.  This is not working for this release.
  617.  
  618.   9.  There is a code generation problem with the Radiobox, that will
  619.   cause parsing errors.  Essentially, the binding statements for the 
  620.   Radiobox appear after the RadioButtons are initialized.  There is 
  621.   a work-around for this:
  622.     a.  Do a 'parse all' after placing the first RadioButton on the form.
  623.        (Doing this will cause the RadioBox to appear in the Project window)
  624.     b.  In the Project window, move the RadioBox above the KPMP (KeyPress
  625.         ManagerPanel).
  626.     c.  Move the binding statement for the RadioBox before the RadioButtons
  627.         are initialized, and this will parse correctly.
  628.  
  629.   10.  The CheckBox object has a label property, but it will not display
  630.   the value that has been set.
  631.  
  632.   11.  Special notes for DBTimestamp:
  633.     a.  You can update a DBTstamp by pressing return or tab, but not by 
  634.         clicking on another element.
  635.     b.  If you have an empty DBTstamp field ( i.e. after creating a new 
  636.         record) you can set it to the current date/time by pressing 
  637.         return or tab.
  638.     c.  If you have both a DBTstamp and another component showing the same 
  639.         record, the DBTstamp will automaticaly update the other components.
  640.     d.  If you try to update a DBTstamp with an invalid date/time value, 
  641.         then the data value stored/displayed in the DBTstamp may be wrong.
  642.     e.  If you set a custom display format, then the entry format will get 
  643.         automaticaly updated to fit it, unless you specify differently in 
  644.         the property list.
  645.  
  646.   
  647. * LAYOUT OPTIONS
  648.   There are several layout options available for applets, which 
  649.   consist of BorderLayout, CardLayout, FlowLayout, GridBagLayout, 
  650.   and GridLayout.  A bug exists where the selection of CardLayout will 
  651.   cause ALL of the objects in your applet to resize to the dimensions 
  652.   of the applet window.  To compensate for this, CardLayout is not 
  653.   used for the default, and the keyPressManagerPanel is sized slightly 
  654.   smaller than the applet window to facilitate group lasso of objects.
  655.  
  656. * dbNAVIGATOR
  657.   If you specify more than one logical name for a dbANYWHERE server, or 
  658.   use more than one dbANYWHERE server in a given project, you will see 
  659.   each entry in the dbNavigator window.  It is not possible to delete 
  660.   them from this list.  In order to do so, you must delete the 
  661.   dbtree.rps file, located in the BIN directory.  WARNING: this will 
  662.   remove ALL dbNavigator entries.  A future release will provide a 
  663.   more graceful means of editing the entries.
  664.  
  665. * HETEROGENEOUS JOINS
  666.   If your ParentRelationView is in a different database from your 
  667.   detail relationview, and you specify the wrong userID and password, 
  668.   you are not prompted again.  Instead, you are given the Join 
  669.   Definition dialog and will not have any Master columns to select 
  670.   from.  To correct this, you must disconnect from the data source 
  671.   via the dbNavigator and try again.
  672.  
  673. * FOCUS
  674.   1. After moving an object that has the current focus, the focus lines 
  675.   and handle bars will no longer appear.  However, the object will 
  676.   technically still have focus (cursor will show cross hairs), its just 
  677.   the focus highlight will not appear.  You must lose focus by clicking 
  678.   on another object, then return back to the original object to see the 
  679.   focus highlights and handlebars.
  680.  
  681.   2. You cannot lose focus on a group of objects by single clicking on 
  682.   one of the objects in focus.  You must click on an object that does 
  683.   not have current focus to release the group focus.
  684.  
  685.  
  686. * LONGVARBINARY
  687.   When projecting LongVarBinary columns in a SQL statement, be sure not 
  688.   to list them first.  It is recommended that they be listed last for 
  689.   greater efficiency.
  690.  
  691. * SQL STATEMENT PARSING
  692.   The SQL statement parser has some limitations.  You cannot specify some 
  693.   computational functions, table or column aliasing, or table joins of 
  694.   two or more tables.  It is recommended that a SQL view be created on 
  695.   the database in use.
  696.  
  697. * NEW RECORD POSITIONING
  698.   When executing Insert for a RelationView, the new record is not always 
  699.   positioned in a predictable location.  This has no affect on data.  
  700.   After committing the transaction (executing a Save method), the data 
  701.   will be refreshed, and the records will be ordered based on the SQL 
  702.   statement or by rules set in the database.
  703.  
  704. * KEYWORDS
  705.   Keywords and reserved names in Java, JDBC, and in various database 
  706.   engines should NEVER be used for dbAware object names.  Doing so will 
  707.   cause unexpected results with dbANYWHERE.  A future version may 
  708.   implement a reserved word check matrix.
  709.  
  710. * USING ALIASES IN RELATIONVIEWS
  711.   RelationView objects do not support column or table aliasing in SQL 
  712.   statements.  It is suggested that views be created in the database(s) 
  713.   and referenced by a RelationView.
  714.  
  715.  
  716. Vendor Specific Problems
  717. ------------------------
  718.  
  719. * Microsoft Access
  720.  
  721.   There are some problems with using dbANYWHERE connections to 
  722.   Microsoft Access Jet Engine databases earlier than the 7.0 version 
  723.   on Windows NT 4.0, due to some Access problems.  It is recommended 
  724.   that you download the free update available on the Microsoft web 
  725.   site.  The file to get is msjt3032.dll which contains the following 
  726.   files: msjt3032.dll, mswng300.dll, msajetfs.dll, readme.txt, and 
  727.   62317T.doc.  For additional information about this update, see the 
  728.   following article in the Microsoft Knowledge Base:  Article-ID: 
  729.   Q143163; TITLE: Problems Running Microsoft Jet 3.0 on Windows NT 4.
  730.  
  731. * Microsoft Internet Explorer
  732.  
  733.   Microsoft's Internet Explorer was tested with running Java applets, 
  734.   but one of the more notable problems encountered concerned the use 
  735.   of the host name "localhost."  This is a default TCP/IP entry 
  736.   (127.0.0.1) in your HOSTS or LMHOSTS file which allows you to 
  737.   reference the local machine running dbANYWHERE, instead of 
  738.   specifying an IP address.  In some cases, Internet Explorer failed 
  739.   to resolve the "localhost" reference, requiring the use of the full 
  740.   IP addresss.  You may find it best to use IP Addresses or registered
  741.   Domain Names whenever possible.
  742.  
  743. * Sybase SQL Anywhere 5.5
  744.  
  745.   There tends to be a large memory and/or resource leak with repeated
  746.   connects and disconnects to SQL Anywhere 5.5 via ODBC.  Each 
  747.   connect/disconnect consumes 50-100Kbytes of virtual memory that is 
  748.   not given back to the system until the client application terminates.  
  749.   This is under both Win95 and WinNT (3.51 & 4.0).  Technical Support 
  750.   at Sybase confirmed this on high numbers of connect/disconnect 
  751.   sequences in 5.5.0.  They also claim that it should be fixed in 
  752.   5.5.01.  There is an EBF file on their FTP/WEB Server that may or may 
  753.   not contain the fix.
  754.  
  755.   Note: In the documentation, the names Watcom and SQL Anywhere are 
  756.   used interchangeably, since Watcom is the original name of this 
  757.   database engine (prior to the Sybase acquisition).
  758.  
  759.  
  760. JDK Version Incompatibilities
  761. -----------------------------------------------------------------
  762. Symantec Visual Cafe PRO 1.0d supports version 1.0.2 of the Java 
  763. Development Kit from Sun Microsystems.  Also, the JDBC API included
  764. supports version 1.2 of the JDBC specification.
  765.  
  766. Some behaviors of the java.awt components are not correct on the
  767. Microsoft Windows platforms.  
  768.  
  769. These platform-dependent problems include:
  770.  
  771. * Buttons and labels do not support foreground or background colors.
  772. * Checkbox/radiobuttons don't support foreground color.
  773. * Lists size themselves to specific increments (to completely hold 
  774.   lines of text). 
  775. * When building applets/applications for Microsoft Internet Explorer 
  776.   you should not use the project option for Java Optimization or the 
  777.   -O switch.
  778. * When calculating the Client area, awt does not take into account 
  779.   the menubar.  As a result your forms may not appear as WYSIWYG.
  780. * Choice and List components incorrectly display their size and 
  781.   position if not used in conjunction with a layout manager.
  782.  
  783.   Visual Cafe issues a reshape after the component is added, 
  784.   which addresses this problem. However, if you try to use 
  785.   descendants of these classes you will need to add a call to reshape
  786.   after the component has been added.  For example,
  787.     
  788.     Assuming newChoice extends Choice
  789.     //{{INIT_CONTROLS
  790.     newChoice1 = new newChoice();
  791.     newChoice1.reshape(119,72,135,21);
  792.     add(newChoice1);
  793.     //}}
  794.     
  795.     // Add this section after the init block:
  796.     newChoice1.reshape(119,72,135,21);
  797.  
  798.  
  799. These problems should be resolved with the 1.1 release of the JDK.
  800.  
  801. JDK 1.1 Support:
  802. -----------------------------------------------------------------
  803.  
  804. We are now working on the integration of JDK 1.1 support into 
  805. Visual Cafe Pro and expect to have a release available soon.  Please 
  806. check with the cafe.symantec.com Web site periodically for status 
  807. and subscribe to the mailing list so we can notify you when new 
  808. updates to Visual Cafe Pro are available.
  809.  
  810.  
  811. JDBC Specification Problems
  812. -----------------------------------------------------------------
  813.  
  814. * Stored Procedures
  815.   The JDBC specification states the following format to be used 
  816.   for stored  procedures:
  817.  
  818.   { call procedure_name [?,?,....] }
  819.  
  820.   where procedure_name - is the name of the procedure
  821.         ?,?.....       - are the placeholders to be used for parameters
  822.   In the real world, the above doesn't work for all different drivers. 
  823.   So, remember these guidelines:
  824.  
  825.   a. Sybase SQL AnyWhere / Watcom
  826.  
  827.   ODBC drivers are supposed to support the above escape processing 
  828.   syntax for stored procedures.  Unfortunately the Watcom ODBC driver
  829.   doesn't support this. So, always use native calling syntax with 
  830.   Watcom, which is, "call procedure_name ( ?, ?, ? )".
  831.  
  832.   But if you were really brave and wanted to try using the ODBC 
  833.   standard, you would get an "Unable to prepare SQL Statement" 
  834.   exception or some other related message.
  835.  
  836.   b. All InterSolv ODBC Drivers
  837.  
  838.   These drivers do behave a little bit better than the Watcom driver. 
  839.   They let you to prepare the statement, but while executing the 
  840.   statement by executeUpdate(), execute() etc, sometimes strange 
  841.   errors are displayed.  It may be prudent to utilize the dbANYWHERE 
  842.   direct drivers whenever possible.
  843.  
  844.   c. Native Sybase driver, Microsoft SQL Server driver.
  845.  
  846.     Should work fine without a problem.
  847.  
  848.   d. Native Oracle driver.
  849.  
  850.   This works fine, but make sure to include an extra set of () around the 
  851.   placeholders.  This requirement may be alleviated in future versions.
  852.  
  853.   { call procedure_name [(?,?,....)] } 
  854.   Note the () around placeholders
  855.  
  856.  
  857. * Date datatypes are restricted to the range 1970-01-01 to 1999-12-31.
  858.    Attempts to retrieve data with dates outside this range will throw
  859.    an exception that can, in some cases, be unrecoverable.
  860.  
  861. * Excessively large datatypes that go beyond the definitions that 
  862.    JDBC can handle, will cause applets to hang when running.  For 
  863.    example, if you are using Oracle and project a column of datatype 
  864.    NUMBER(38), the applet will hang when executing (no controls will 
  865.    appear).  Make sure you do not violate the datatype limits of JDBC.
  866.  
  867.  
  868. Low-memory warning on startup
  869. -----------------------------------------------------------------
  870. If the sum of your system's available physical memory (RAM) and
  871. swap space on disk is below a minimal level when Visual Cafe PRO 
  872. starts up, a warning dialog will notify you of this condition.  We 
  873. will  advise you to increase swap space (see below).  You have the 
  874. option of ignoring this warning (answer "No" to the "Quit?" prompt), 
  875. and proceeding to run Visual Cafe PRO.  With light use, you may 
  876. not experience any problems at all. But with typical use, at some 
  877. time in the course of your Visual Cafe PRO session you may begin 
  878. to see "low virtual memory" warnings from the operating system.  
  879. Typical symptoms of running any complex application with too 
  880. little available memory are sluggish performance and unstable 
  881. system behavior.
  882.  
  883. If the warning dialog recommends that you increase swap space by 
  884. some small amount, such as 2 or 3 MB, please increase minimum 
  885. swap space on Windows NT, or free disk space on Windows 95, by 
  886. at least 5 MB.
  887.  
  888. On Windows 95, if the option is selected in Settings | Control Panel 
  889. | System | Performance | Virtual Memory to let the OS manage swap 
  890. space (this is the default), then available swap space is simply the 
  891. amount of free disk space; but note that there is no guaranteed 
  892. minimum:  if the disk is full, there is no swap space available.
  893.  
  894. On Windows NT 3.51, Control Panel is started from Program Manager;
  895. on Windows NT 4.0, Control Panel is started from the Settings
  896. menu item, as on Windows 95.  The page file setting that matters
  897. most to an application on NT is the minimum page size setting.
  898. On a system with 32 MB RAM, the minimum swap space should be not 
  899. less than 20 MB, and 32 MB is better. A reasonable setting for
  900. the maximum is at least twice the minimum.
  901.  
  902. For further details about virtual memory, see the OS Help on the
  903. System dialog.
  904.  
  905.  
  906. V. Revision History:
  907. ================================================================
  908. 1.0e
  909.  
  910. 1.  Resolved crash drawing InvisibleHTMLLink component partially onto another
  911.     component.
  912. 2.  Resolved crash setting Preview Component to "true" for Animator without
  913.     specifying URL.
  914. 3.  Resolved various Menu Editor crashes and inability to copy or paste menus
  915.     or menu items within Menu Editor, Project Windows, or Form Designer.
  916. 4.  Resolved crash when Menu Editor remained open after parent is deleted.
  917. 5.  Resolved crash when import statements were deleted from source.
  918. 6.  Resolved crash when inserting a Canvas into a Calendar.
  919. 7.  Resolved crash with non-existent within a Tab Panel.
  920. 8.  Resolved crash when closing project with an invalid applet name.
  921. 9.  Resolved NervousText 100% CPU usage when paused.
  922. 10. Resolved horizontal and vertical sliders that were "see through."
  923. 11. Resolved Border Panel contents shifting up and left when Form
  924.     Editor is opened and closed.
  925. 12. Resolved Sound Player component that failed to parse.
  926. 13. Resolved List Box shrinkage on opening and closing the Form Editor.
  927. 14. Resolved setDate method in Calendar that failed to set date.
  928. 15. Resolved labelButton label that was missing until clicked on execute.
  929. 16. Resolved left alignment issues within Label and textFields.
  930. 17. Resolved various Numeric Spinner issues.
  931. 18. Resolved the adding of more than 14 files to the URL property
  932.     of Animator or Slideshow.
  933. 19. Resolved various issues with saving projects on a network.
  934. 20. Resolved various back parser failures.
  935. 21. Resolved various GridBag failures.
  936. 22. Resolved failure with extending java.awt.Canvas
  937. 23. Resolved Slider not painting correctly if the default value isn't 0.
  938. 24. Resolved NumericSpinner default values not functioning.
  939. 25. Resolved LabelButton's label not showing until clicked as well as other
  940.     issues.
  941. 26. Removed "?invalid row" in messages window.
  942. 27. Inserting a package statement no longer prevents future visual
  943.     design code generation.
  944. 28. Sample applets modified.
  945. 29. Various component documentation enhancements.
  946. 30. Live Controls now disabled if foreign Java .DLL files are found in the
  947.     system path.
  948. 31. Variables are now available with an applet connection.
  949. 32. Resolved accelerator conflicts with Window Menu.
  950. 33. Added installation prompts for Classpath addition to environment.
  951. 34. Added "double" capability in GridBag layout.
  952. 35. Added "Applet to Dialog" interactions.
  953. 36. Added Macro Recorder.
  954. 37. Added Macro Recorder help.
  955. 38. Added support for name, label, or values greater than 256 characters.
  956. 39. Added default tab property for TabPanel.
  957. 40. Added "Generate Debug Information" into project options.
  958. 41. Resolved MultiList clear method where list would not clear until clicked.
  959. 42. Resolved preformatted text fields with KeyPressManagerPanel to support tabbing.
  960. 43. Resolved CardLayout so that card names are now generated into the source file.
  961.  
  962.  
  963. VI. Additional Information
  964. ================================================================
  965.  
  966. Sybase SQL Anywhere 5.5
  967. -----------------------
  968. 1. Use of the Sybase SQL Anywhere Server and the Sybase SQL Anywhere 
  969. Runtime Distributable Components requires the user to read the license 
  970. information displayed in the Visual Cafe PRO installation screen and 
  971. contained in the license files provided on disk (Sybase Runtime 
  972. License and Sybase SQL Server License).
  973.  
  974. 2. Only one copy of the SQL Anywhere Server may be used for development 
  975. purposes and one copy of the SQL Anywhere Runtime Distributable 
  976. Components may be used with Visual Cafe Pro.  The Sybase Anywhere 
  977. Server and the Sybase Anywhere Runtime Distributable Components may 
  978. only be used in conjunction with dbANYWHERE Workgroup Server.
  979.  
  980. 3. End user developers may not include dbANYWHERE Workgroup Server, 
  981. Sybase SQL Anywhere Server or Sybase SQL Anywhere Runtime Distributable 
  982. Components with their applications unless each copy of their application
  983. includes a fully licensed version of Visual Cafe Pro.
  984.  
  985. 4. Sybase SQL Anywhere Server will be used for database application 
  986. development. Any deployment of the database and application will require 
  987. the use of the Sybase SQL Anywhere Runtime Distributable Components.  
  988. The Sybase SQL Anywhere Server is not licensed for use in deployment 
  989. situations.
  990.  
  991. 5. Note that the included Sybase SQL Anywhere Runtime Distributable 
  992. Components allow up to no more than 10 simultaneous connections.
  993.  
  994. 6. Because this Software is a Symantec database development product, 
  995. you have a right to host one version of the database components of 
  996. the Software product on a different physical machine than the machine 
  997. on which the development environment is used. Even though different 
  998. components of the included Software Product may be hosted on separate 
  999. physical machines, only one copy of each component may exist at one 
  1000. time.  This applies to both development and runtime database engines 
  1001. provided with this Software product.
  1002.  
  1003.             *
  1004.  
  1005. VII. Contacting Symantec for Technical Support
  1006. ================================================================
  1007.  
  1008. During the first 90 days of your purchase, you may call Technical 
  1009. support free of charge at (541) 465-8470.
  1010.  
  1011. 1.  Free and unlimited electronic support is available at 
  1012.      http://www.symantec.com/techsupp/news/index.html, 
  1013.     
  1014.      Support is also available on the usenet newsgroup  
  1015.      comp.lang.java
  1016.  
  1017.      Send bug reports to support_javawin@symantec.com
  1018.  
  1019. 2. If your User ID and Password become inoperative, please send 
  1020.     e-mail notification to Customer Service at custserv@symantec.com 
  1021.     with your name, address, daytime phone number, ID and password. 
  1022.     Please type "Visual Cafe PRO" in the subject field. We will respond 
  1023.     shortly thereafter.
  1024.   
  1025. 3. If you have lost your Cafe ID set, please send notification to 
  1026.     Customer Service at custserv@symantec.com.  In the event that 
  1027.     your information does not appear in our registration database, 
  1028.     we will provide additional avenues for verification of ownership.
  1029.  
  1030. 4. For CD purchases or damaged disks please call Customer Service 
  1031.     at 800-441-7234.   
  1032.